

enum SPELL_TYPE
{
	ST_GENERIC = 0,
	ST_FIREBALL,
	ST_HEAL,
	ST_POISON,
	ST_BLAZE,
	ST_RANDOM
};


class SPELL: public ITEM
{
private:
	SPELL_TYPE type;
	int manacost;
	int magnitude;
public:

	SPELL()
	{
		manacost = 0;
		magnitude = 0;
		type = ST_GENERIC;
	}

	SPELL(SPELL* newspell)
	{
		SetName(newspell->GetName());
		SetPrice(newspell->GetPrice());
		SetManaCost(newspell->GetManaCost());
		SetMagnitude(newspell->GetMagnitude());
		type = newspell->GetSpellType();
	}

	int GetManaCost()
	{
		return manacost;
	}

	int GetMagnitude()
	{
		return magnitude;
	}

	void SetManaCost(int value)
	{
		manacost = value;
	}

	void SetMagnitude(int value)
	{
		magnitude = value;
	}

	void SetSpellType(SPELL_TYPE st)
	{
		type = st;
	}

	SPELL_TYPE GetSpellType()
	{
		return type;
	}

	virtual void Cast(ENTITY* elist,int ecount)
	{
		//do nothing
	}
};